/*
   Project AwesOmeScript
   Copyright 2010 Domenico Gentner

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License along
   with this program; if not, write to the Free Software Foundation, Inc.,
   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifndef HTMLEDITSETTINGS_HPP
#define HTMLEDITSETTINGS_HPP

#include "StyleDescriptor.hpp"


//////////////////////////////////////////////////////////////////////////
// Manages the Styles for wxStyledTextControl
class HtmlEditSettings
{
public:
	typedef std::map<int, StyleDescriptor*> TStyleList;

private:
	typedef std::pair<int, StyleDescriptor*> TStylePair;

public:
	HtmlEditSettings();
	virtual ~HtmlEditSettings();

	TStyleList& GetStyleList() { return m_styles; }
	const int GetNumStyles() const { return m_styles.size(); }
	void ChangeStyle(int id, StyleDescriptor* d);

	void ResetToStandard();

	void ReadSettings();		
	void WriteSettings();

private:
	TStyleList m_styles;	
	void MakeEmpty();
	StyleDescriptor* GetStyleFromString(const wxString& s);
	wxString MakeStyleString(StyleDescriptor* d);
};

#endif // HTMLEDITSETTINGS_HPP
